package com.lpssfxy.service.impl;

import com.lpssfxy.bean.R;
import com.lpssfxy.dao.ProductRepository;
import com.lpssfxy.entity.Product;
import com.lpssfxy.service.ProductService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Optional;

@Service
public class ProductServiceImpl implements ProductService {
    @Resource
    private ProductRepository productRepository;

    //获取全部的商品数据
    @Override
    public R getProductList() {
        return R.ok().data("data",productRepository.findAll());
    }
    //根据id获取一个商品
    @Override
    public R getProductById(Integer productId) {
        Optional<Product> optionalProduct = productRepository.findByProductId(productId);
        if (optionalProduct.isPresent()) {
            return R.ok().data("data", optionalProduct.get());
        }
        return R.error().message("该商品不存在");
    }
    //增加一个商品
    @Override
    public R addNewProduct(Product product) {
        if (productRepository.existsById(product.getProductId())) {
            return R.error().message("该商品已经存在~");
        }
        productRepository.save(product);
        return R.ok().message("添加商品成功~");
    }
    //更新商品
    @Override
    public R updateProduct(Product product) {
        Integer timestamp = Long.valueOf(System.currentTimeMillis()/1000).intValue();
        product.setTimestamp(timestamp); //设置更新时间
        return R.ok().data("data",productRepository.save(product));
    }
    //删除商品
    @Override
    public R deleteProduct(Integer productId) {
        if (productRepository.existsById(productId)) {
            productRepository.deleteById(productId);
            return R.ok().message("删除商品成功~");
        }
        return R.error().message("该商品不存在，无法删除");
    }
}